package com.example.json;

import com.example.pojo.Person;
import com.google.gson.Gson;
import org.junit.Test;

import javax.swing.plaf.synth.SynthEditorPaneUI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JsonTest {
//        (1.1)、java 对象和 json 的转换
    @Test
    public void test1(){
        Person person = new Person(1,"谢应鹏");
        //创建Gson对象实例
        Gson gson = new Gson();
        //toJSON方法可以把java对象转换成为json字符串
        String personJsonString = gson.toJson(person);
        System.out.println(personJsonString);
        //fromJson把json字符串转换回java对象类型
        Person person1 = gson.fromJson(personJsonString,Person.class);
        System.out.println(person1);
    }
//
//        (1.2)、java 对象 list 集合和 json 的转换
    @Test
    public void  test2(){
        List<Person> personList = new ArrayList<>();
        personList.add(new Person(1,"xx"));
        personList.add(new Person(2,"谢"));
        Gson gson  = new Gson();
        //把list转换为json字符串
        String personListJsonString  = gson.toJson(personList);
        System.out.println(personListJsonString);

    }
//
//        (1.3)、map 对象和 json 的转换
@Test
public void  test3(){
    Map<Integer,Person> personMap = new HashMap<>();
    personMap.put(1,new Person(1,"x"));
    personMap.put(2,new Person(2,"谢"));
    Gson gson = new Gson();
    //把map对象转换为json字符串
    String personMapJsonString = gson.toJson(personMap);
    System.out.println(personMapJsonString);

}
}
